楼主: sascylindrical
3354 3

[讨论]如何用Proc Format实现数据集的合并。 [推广有奖]

  • 0关注
  • 1粉丝

本科生

65%

还不是VIP/贵宾

-

威望
0
论坛币
21275 个
通用积分
1.3900
学术水平
12 点
热心指数
13 点
信用等级
9 点
经验
518 点
帖子
52
精华
0
在线时间
123 小时
注册时间
2009-4-1
最后登录
2009-10-20

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在一篇Paper(详见附件)里面看到一种办法,用于合并两个有公共变量的数据集。题目和解法如下:

题目:
合并数据集A和B,新表中包含同时出现在A和B里面并且ordernumber相等的obs,A和B的结构如下

Dataset A
ordernumber
firstname
lastname

Dataset B
ordernumber
product
purchase date

解法(by Proc Format):
data b; set b;
start = ordernumber;
label = '*';
fmtname = '$key';
run;

proc sort data=b nodupkey; by start;
run;

proc format cntlin=b;
run;

data all; set a;
if put(ordernumber,$key.) = '*';
run;

这个解法我大致看懂了,它适用于一个表比较小(set b)而另一个表大(set a)而且不方便排序的场合;
可是在我看来,这个解法只能说是从大表(set a)中提取小表(set b)中ordernumber出现的obs,它并没有实现合并,也就是说dataset all里面并没有包括dataset b里除了ordernumber之外的变量;对照该论文给出的其它三种解法,那三种解法都是实在的Merge Code。这样说来,是不是很不严谨呢?很想知道大家怎么看这个问题。望不吝赐教,谢谢。

Assessing.SAS.Skill.Level.during.the.Interviewing.Process_133-29.pdf (186.77 KB)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:format FORMA form ORM 如何用 start 如何

已有 1 人评分学术水平 收起 理由
论坛数据分析 + 2 鼓励积极发帖讨论

总评分: 学术水平 + 2   查看全部评分

怎么没人讨论这个技术问题呢?其实还蛮有趣的...

使用道具

藤椅
peijiamei 发表于 2010-7-21 14:42:03 |只看作者 |坛友微信交流群
学习了
我的微博:http://t.sina.com.cn/1087192374
欢迎互相加关注!

使用道具

板凳
soporaeternus 发表于 2010-7-21 15:03:30 |只看作者 |坛友微信交流群
例子就是format的一个表链接
个人感觉更多应用在和代码表的链接上,据说速度是最快的,对比join或是merge
Let them be hard, but never unjust

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-29 06:00